home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / src / libqbuild / winding.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-29  |  1.8 KB  |  48 lines

  1. #ifndef    WINDING_H
  2. #define    WINDING_H
  3. /*
  4.  * ============================================================================
  5.  * structures
  6.  * ============================================================================
  7.  */
  8.  
  9. struct winding {
  10.   bool original;
  11.   int numpoints;
  12.   vec3_t points[8];                                   // variable sized
  13. } __packed;
  14.  
  15. #define MAX_POINTS_ON_WINDING        64
  16.  
  17. /*
  18.  * ============================================================================
  19.  * globals
  20.  * ============================================================================
  21.  */
  22.  
  23. extern int c_activewindings, c_peakwindings;
  24.  
  25. /*
  26.  * ============================================================================
  27.  * prototypes
  28.  * ============================================================================
  29.  */
  30.  
  31. void WindingBounds(register struct winding *w, vec3_t mins, vec3_t maxs);
  32. void WindingCenter(register struct winding *w, vec3_t center);
  33. vec_t WindingArea(register struct winding *w);
  34. struct winding *BaseWindingForPlane(register struct plane *p);
  35. struct winding *WindingFromFace(__memBase, register struct dface_t *f);
  36. void CheckWinding(register struct winding * w);
  37. void CheckWindingInNode(register struct winding * w, register struct node * node);
  38. void CheckWindingArea(register struct winding * w);
  39. void PlaneFromWinding(register struct winding * w, register struct plane * plane);
  40. struct winding *ClipWinding(register struct winding * in, register struct plane * split, register bool keepon);
  41. void ClipWindingEpsilon(struct winding *in, vec3_t normal, vec_t dist,
  42.             vec_t epsilon, struct winding **front, struct winding **back);
  43. struct winding *CopyWinding(register struct winding * w);
  44. void DivideWinding(struct winding * in, struct plane * split, struct winding ** front, struct winding ** back);
  45. void FreeWinding(register struct winding * w);
  46. struct winding *NewWinding(register int points);
  47. #endif
  48.